home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / boot / czesc_2 / smsrc / sm / screen.pas < prev    next >
Pascal/Delphi Source File  |  1995-07-11  |  2KB  |  83 lines

  1. { close the Screen }
  2. Procedure Close_Screen;
  3.  
  4. VAR OK : Boolean;
  5.  
  6. Begin
  7.     OK := CloseScreen(TheScreen);
  8.     While NOT OK do begin
  9.         Delay(1000);
  10.         OK := CloseScreen(TheScreen);
  11.     end;
  12.     CloseFont(mytextfont);
  13. End;
  14.  
  15.  
  16. Function Open_Screen;
  17.  
  18. CONST
  19.     PubName : String[13] = 'SUPMENU'#0;
  20.     
  21. Var 
  22.     Tgs    : Array[0..14] Of tTagItem;
  23.     Screen : pScreen;
  24.     err    : LONG;
  25.    
  26. Begin
  27.  
  28.     { Make sure w've got an openable TextAttr }
  29.     MyTextFont := OpenDiskFont(@CD.cd_Font);
  30.     If MyTextFont = NIL then begin  { default to topaz 8 if unsuccesful }
  31.         With CD.cd_Font do begin
  32.             ta_Name := CSCPAR(@RememberKey, 'topaz.font');
  33.             ta_YSize := 8;
  34.             ta_Style := 0;
  35.             ta_Flags := FPF_ROMFONT;
  36.         end;
  37.         MyTextFont^.tf_XSize := 6;
  38.     end;
  39.     
  40.     { Tags for the screen }
  41.      Tgs[0].ti_Tag  := SA_Type;
  42.    Tgs[0].ti_Data := PUBLICSCREEN;
  43.    Tgs[1].ti_Tag  := SA_Title;
  44.    Tgs[1].ti_Data := LONG(CSCPAR( @RememberKey, CD.cd_ScrTit));
  45.    Tgs[2].ti_Tag  := SA_OverScan;
  46.    Tgs[2].ti_Data := OSCAN_TEXT;
  47.    Tgs[3].ti_Tag  := SA_Depth;
  48.    Tgs[3].ti_Data := CD.cd_ScrDepth;
  49.    Tgs[4].ti_Tag  := SA_Font;
  50.    Tgs[4].ti_Data := LONG(@CD.cd_Font);
  51.    Tgs[5].ti_Tag  := SA_DisplayID;
  52.    Tgs[5].ti_Data := CD.cd_ModeID; 
  53.    Tgs[6].ti_Tag  := SA_Width;
  54.    Tgs[6].ti_Data := CD.cd_ScrW;
  55.    Tgs[7].ti_Tag  := SA_Height;
  56.    Tgs[7].ti_Data := CD.cd_ScrH;
  57.    Tgs[8].ti_Tag  := SA_Pens;
  58.    Tgs[8].ti_Data := LONG(@MyPens);
  59.    Tgs[9].ti_Tag  := SA_AutoScroll;
  60.    Tgs[9].ti_Data := True_;
  61.    Tgs[10].ti_Tag := SA_PubName;
  62.    Tgs[10].ti_Data:= LONG(@PubName[1]);
  63.    Tgs[11].ti_Tag := SA_Interleaved;
  64.    Tgs[11].ti_Data:= True_;
  65.    Tgs[12].ti_Tag := SA_SharePens;
  66.    Tgs[12].ti_Data:= True_;
  67.    Tgs[13].ti_Tag := SA_ErrorCode;
  68.    Tgs[13].ti_Data:= LONG(@err);
  69.    Tgs[14].ti_Tag := TAG_END;
  70.    
  71. (*
  72.  * Open screen and exit with appropriate msg if unsuccessful.
  73.  *)
  74.    Screen := OpenScreenTagList(NIL, @Tgs);
  75.    IF Screen <> NIL then begin
  76.         LoadRGB4(@Screen^.ViewPort, @CD.cd_Pal[0], 4);
  77.         err := PubScreenStatus(Screen, 0);
  78.      end;
  79.     
  80.     Open_Screen := Screen;
  81. end;
  82.  
  83.